Controladores de video

        El compilador de C cuenta con los controladores de video *.bgi, los
cuales nos permitan manejar el modo grafico en resolucion CGA o VGA esta es
una desventaja ya que nos restrinje la resolucion a 640X480 pixeles y 16
colores.

        Si queremos relizar un trabajo de mejor calidad tendiramos que ocupar
el controlador VGA256.BGI o SVGA256.BGI, este par de contrloladores aumenta
el manejo de colores de 16 a 256.

        Como es algo dificil consegir estos controladores no tenemos otra
opcion que construir nuestro propio controlador.

        Para construirlo debemos de programar directamente al tarjeta de video
si contamos con una tarjeta VGA tenemos ya por default 256 colores, y una
resolucion de 320X200.

        Dependiendo del tipo de tarjeta aumenta la resolucion y el numero de
colores.


Memoria de Video.

        La memoria de video en una tarjeta normal VGA consta de 256K de memoria
Con esta capacidad podemos tener normalmente una resolucion de 320 X 200
pixeles (modo 13h), lo cual da un total de 64K de memoria convencional.

        La direccion de la memoria de video en modo grafico empieza en la
localidad A000:0000h.

        Si mandamos escribir un valor en la esta localidad podremos ver un punto
en la parte superior del monitor.

        La ventaja de mandar a escribir directamente a memoria, es que agiliza
bastante el manejo de informacion.




Paleta de colores.

        La paleta de colores no es mas que una tabla de 256 registros con
3 componentes cada uno. Los componentes son R,G,B (rojo,verde,azul).

	La computadora cuenta con un DAC (Digital Analogic Conversor) el
cual permita el acseso a la paleta de colores mediante los registros 3C7h,
3C8h 3C9 la funcion de los  registros es la sigiente:

	3C7h  Lectura.
	3C8h  Escritura.
	3C9h  Componentes del color (R,G,B)

        Cada ves que se hace el llamada al puerto 3C9h realiza el cambio de
registro automaticamente.

	Con un par de fucniones podemos modificar los colores o crear nuevas
tonalidades que antes no podiamos realizar.

Leer un color especifico
void R_C(int C)
  {
    outport(0x3c7,C);  //Escribimos el color
    R=inport(0x3c9);   //Leemos componente Roja
    G=inport(0x3c9);   //Leemos componente Verde
    B=inport(0x3c9);   //Leemos componente Azul
  }

Escribir un color con componente R,G,B.
void W_C(int C,int R,int G,int B)
  {
    outportb(0x3c8,C);   //Escribimos el color
    outportb(0x3c9,R);   //Escribimos componente Roja
    outportb(0x3c9,G);   //Escribimos componente Verde
    outportb(0x3c9,B);   //Escribimos componente Azul
  }

	Con estas funciones podemos tener un total de 256K combinaciones de
colores en una tarjeta de video VGA.




Prosesamiento de Imagenes.

        Al tener una una imagen, podemos analizarla punto por punto, y
representarlos por medio de lineas con X grado de inclinacion. Gracias a esto
obtenemos una perspectiva de la imagen. Ciertas partes de acuerdo a su color
toman un efecto de profundidad o de sobresalir en la imagen.




        Para poder manejar imagenes o sonido tenemos que manejar una gran
cantidad de informacion ya almacenada por algun otro medio como algun scanner
para imagenes o una tarjeta de sonido para audio. Estos dispositivos cuentan
con formatos propios o estandares entre los mas usuales para imagenes son: GIF
TIFF, JPG, PCX, BMP etc. para sonido VOC, MOD, MIDI, WAV, SB etc. Algunos de
estos formatos cuentan con cierto tipo de compactacion, por lo cual es muy
dificil para nosotros manejar si no contamos con la informacion del formato.
Pero otros son mas simples como es el caso del formato BMP para imagen y WAV
para sonido.

	Dentro del encabezado del formato encontramos: identificacion del formato
longitud del cuerpo, paleta de colores o frecuencia a reproducir, tamao de la
imagen o duracion del sonido etc.

        Se podria decir que es muy distinto manejar sonido a manejar imagenes.
Lo unico distinto que tiene es la forma de como lo percibimos ya que la
computadora lo maneja de igual forma como cadenas de 0's y 1's. Si manejamos
imagenes tendremos que sacar la informacion por medio del monitor y en el caso
del sonido por medio de la soun blaster o por la bocina interna de la PC.

        Para menejar cualquiera de estos dos tipos de informacion, debemos
de tomar en cuenta, el como programar los dispositivos de entrada o salida.
La informacion para programarlos se encuentra muy dispersa y es dificil de
consegir.

        Seria aconsejable tener nociones de como se transmite el sonido o
como se generan los colores. Al saber esto se facilita  el manejo de la
informacion.

        Para mayor informacion de estos temas comunicarse con

        J. Antonio Jimenez Avia

        Tel. 796-16-78, 753-62-30, 775-61-91.

        E-mail jimeneza@vmredipn.ipn.mx
               vincen@alebrige.escom.ipn.mx


        Calle 647#36 U. Aragon Secc. 4 y 5
        C. P. 07920  Cd. Mexico

